package cn.tedu.egmybatis5.mapper;

import cn.tedu.egmybatis5.pojo.entity.Customers;
import cn.tedu.egmybatis5.pojo.entity.UserOrders;
import cn.tedu.egmybatis5.pojo.vo.CustomersVO1;
import cn.tedu.egmybatis5.pojo.vo.CustomersVO2;
import cn.tedu.egmybatis5.pojo.vo.OrderListVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface CustomersMapper {
    /**
     * 1.在客户信息表中插入一条数据：'0004', '13811112222', 'Tony', '成都'
     */
    int inserCustomer(Customers customer);

    /**
     * 2.在订单表中插入一条数据：'202301020004', '0004', new Date(), '3', 4, 800.88
     */
    int insertOrder(UserOrders userOrder);

    /**
     * 3.使用resultMap查询指定客户成交的订单信息，结果放到：OrderListVO 中，
     * 需要显示：顾客id、顾客姓名、订单集合 List<UserOrders>
     */
    OrderListVO selectOrdersByCid(String cid);

    /**
     * 4.使用resultMap根据客户编号查询某个客户的 姓名和电话，结果：CustomersVO1
     */
    CustomersVO1 selectCustomerByCid(String cid);

    /**
     * 5.使用resultMap查询指定城市的客户的 姓名和地址，结果集放到List集合中，
     * 比如查询北京的客户信息：CustomersVO2
     */
    List<CustomersVO2> selectCustomersByAddress(String address);

    /**
     * 6.根据订单编号动态删除订单信息，使用 List集合方式
     */
    int deleteOrdersByOids(List<String> oids);

    /**
     * 7.动态修改订单信息
     */
    int updateOrderByOid(UserOrders userOrders);
}
